package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 选题变更申请对象 topic_change_request
 *
 * @author ltr
 * @date 2024-11-16
 */
public class TopicChangeRequest extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 变更申请ID */
    private Long requestId;

    /** 学生ID（关联student_info） */
    @Excel(name = "学生ID")
    private Long studentId;

    /** 原题目ID（关联topic） */
    @Excel(name = "原题目ID")
    private Long oldTopicId;

    /** 新题目ID（关联topic） */
    @Excel(name = "新题目ID")
    private Long newTopicId;

    /** 变更理由 */
    private String changeReason;

    /** 申请状态（待审核/已同意/已拒绝） */
    @Excel(name = "申请状态")
    private String status;

    /** 原教师意见（同意/拒绝） */
    private String oldTeacherOpinion;

    /** 原教师意见说明 */
    private String oldTeacherReason;

    /** 原教师审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date oldTeacherReviewTime;

    /** 新教师意见（同意/拒绝） */
    private String newTeacherOpinion;

    /** 新教师意见说明 */
    private String newTeacherReason;

    /** 新教师审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date newTeacherReviewTime;

    /** 最终状态（已通过/已拒绝） */
    @Excel(name = "最终状态")
    private String finalStatus;

    /** 学生姓名（关联查询，不存数据库） */
    @Excel(name = "学生姓名")
    private String studentName;

    /** 学号（关联查询，不存数据库） */
    @Excel(name = "学号")
    private String studentNo;

    /** 年级（关联查询，不存数据库） */
    private String grade;

    /** 专业（关联查询，不存数据库） */
    private String major;

    /** 班级（关联查询，不存数据库） */
    private String className;

    /** 绩点（关联查询，不存数据库） */
    private BigDecimal gpa;

    /** 联系邮箱（关联查询，不存数据库） */
    private String email;

    /** 技术栈（关联查询，不存数据库） */
    private String techStack;

    /** 个人简介（关联查询，不存数据库） */
    private String personalIntro;

    /** 原题目名称（关联查询，不存数据库） */
    @Excel(name = "原题目")
    private String oldTopicTitle;

    /** 原教师ID（关联查询，不存数据库） */
    private Long oldTeacherId;

    /** 原教师姓名（关联查询，不存数据库） */
    @Excel(name = "原指导教师")
    private String oldTeacherName;

    /** 原教师工号（关联查询，不存数据库） */
    private String oldTeacherNo;

    /** 新题目名称（关联查询，不存数据库） */
    @Excel(name = "新题目")
    private String newTopicTitle;

    /** 新教师ID（关联查询，不存数据库） */
    private Long newTeacherId;

    /** 新教师姓名（关联查询，不存数据库） */
    @Excel(name = "新指导教师")
    private String newTeacherName;

    /** 新教师工号（关联查询，不存数据库） */
    private String newTeacherNo;

    public void setRequestId(Long requestId)
    {
        this.requestId = requestId;
    }

    public Long getRequestId()
    {
        return requestId;
    }

    public void setStudentId(Long studentId)
    {
        this.studentId = studentId;
    }

    public Long getStudentId()
    {
        return studentId;
    }

    public void setOldTopicId(Long oldTopicId)
    {
        this.oldTopicId = oldTopicId;
    }

    public Long getOldTopicId()
    {
        return oldTopicId;
    }

    public void setNewTopicId(Long newTopicId)
    {
        this.newTopicId = newTopicId;
    }

    public Long getNewTopicId()
    {
        return newTopicId;
    }

    public void setChangeReason(String changeReason)
    {
        this.changeReason = changeReason;
    }

    public String getChangeReason()
    {
        return changeReason;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setOldTeacherOpinion(String oldTeacherOpinion)
    {
        this.oldTeacherOpinion = oldTeacherOpinion;
    }

    public String getOldTeacherOpinion()
    {
        return oldTeacherOpinion;
    }

    public void setOldTeacherReason(String oldTeacherReason)
    {
        this.oldTeacherReason = oldTeacherReason;
    }

    public String getOldTeacherReason()
    {
        return oldTeacherReason;
    }

    public void setOldTeacherReviewTime(Date oldTeacherReviewTime)
    {
        this.oldTeacherReviewTime = oldTeacherReviewTime;
    }

    public Date getOldTeacherReviewTime()
    {
        return oldTeacherReviewTime;
    }

    public void setNewTeacherOpinion(String newTeacherOpinion)
    {
        this.newTeacherOpinion = newTeacherOpinion;
    }

    public String getNewTeacherOpinion()
    {
        return newTeacherOpinion;
    }

    public void setNewTeacherReason(String newTeacherReason)
    {
        this.newTeacherReason = newTeacherReason;
    }

    public String getNewTeacherReason()
    {
        return newTeacherReason;
    }

    public void setNewTeacherReviewTime(Date newTeacherReviewTime)
    {
        this.newTeacherReviewTime = newTeacherReviewTime;
    }

    public Date getNewTeacherReviewTime()
    {
        return newTeacherReviewTime;
    }

    public void setFinalStatus(String finalStatus)
    {
        this.finalStatus = finalStatus;
    }

    public String getFinalStatus()
    {
        return finalStatus;
    }

    public String getStudentName()
    {
        return studentName;
    }

    public void setStudentName(String studentName)
    {
        this.studentName = studentName;
    }

    public String getStudentNo()
    {
        return studentNo;
    }

    public void setStudentNo(String studentNo)
    {
        this.studentNo = studentNo;
    }

    public String getGrade()
    {
        return grade;
    }

    public void setGrade(String grade)
    {
        this.grade = grade;
    }

    public String getMajor()
    {
        return major;
    }

    public void setMajor(String major)
    {
        this.major = major;
    }

    public String getClassName()
    {
        return className;
    }

    public void setClassName(String className)
    {
        this.className = className;
    }

    public BigDecimal getGpa()
    {
        return gpa;
    }

    public void setGpa(BigDecimal gpa)
    {
        this.gpa = gpa;
    }

    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getTechStack()
    {
        return techStack;
    }

    public void setTechStack(String techStack)
    {
        this.techStack = techStack;
    }

    public String getPersonalIntro()
    {
        return personalIntro;
    }

    public void setPersonalIntro(String personalIntro)
    {
        this.personalIntro = personalIntro;
    }

    public String getOldTopicTitle()
    {
        return oldTopicTitle;
    }

    public void setOldTopicTitle(String oldTopicTitle)
    {
        this.oldTopicTitle = oldTopicTitle;
    }

    public Long getOldTeacherId()
    {
        return oldTeacherId;
    }

    public void setOldTeacherId(Long oldTeacherId)
    {
        this.oldTeacherId = oldTeacherId;
    }

    public String getOldTeacherName()
    {
        return oldTeacherName;
    }

    public void setOldTeacherName(String oldTeacherName)
    {
        this.oldTeacherName = oldTeacherName;
    }

    public String getOldTeacherNo()
    {
        return oldTeacherNo;
    }

    public void setOldTeacherNo(String oldTeacherNo)
    {
        this.oldTeacherNo = oldTeacherNo;
    }

    public String getNewTopicTitle()
    {
        return newTopicTitle;
    }

    public void setNewTopicTitle(String newTopicTitle)
    {
        this.newTopicTitle = newTopicTitle;
    }

    public Long getNewTeacherId()
    {
        return newTeacherId;
    }

    public void setNewTeacherId(Long newTeacherId)
    {
        this.newTeacherId = newTeacherId;
    }

    public String getNewTeacherName()
    {
        return newTeacherName;
    }

    public void setNewTeacherName(String newTeacherName)
    {
        this.newTeacherName = newTeacherName;
    }

    public String getNewTeacherNo()
    {
        return newTeacherNo;
    }

    public void setNewTeacherNo(String newTeacherNo)
    {
        this.newTeacherNo = newTeacherNo;
    }

    @Override
    public String toString()
    {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("requestId", getRequestId())
                .append("studentId", getStudentId())
                .append("oldTopicId", getOldTopicId())
                .append("newTopicId", getNewTopicId())
                .append("changeReason", getChangeReason())
                .append("status", getStatus())
                .append("oldTeacherOpinion", getOldTeacherOpinion())
                .append("oldTeacherReason", getOldTeacherReason())
                .append("oldTeacherReviewTime", getOldTeacherReviewTime())
                .append("newTeacherOpinion", getNewTeacherOpinion())
                .append("newTeacherReason", getNewTeacherReason())
                .append("newTeacherReviewTime", getNewTeacherReviewTime())
                .append("finalStatus", getFinalStatus())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("createBy", getCreateBy())
                .append("updateBy", getUpdateBy())
                .append("remark", getRemark())
                .toString();
    }
}